import { ElMessage } from 'element-plus'
import axios from 'axios'
import { useUserStore } from '@/stores/modules/user'
// 进度条
// @ts-ignore
import nProgress from 'nprogress'
import 'nprogress/nprogress.css'

const httpRequest = axios.create({
	baseURL: import.meta.env.VITE_APP_BASE_API,
	timeout: 10000
})

// 添加请求拦截器
httpRequest.interceptors.request.use(
	 
	function (config) {
		// 进度条开始
		nProgress.start()
		const useUser = useUserStore()
		if (useUser.token) {
			config.headers.token = useUser.token
		}
		// 在发送请求之前做些什么
		return config
	},
	function (error) {
		// 对请求错误做些什么
		return Promise.reject(error)
	}
)

// 添加响应拦截器
httpRequest.interceptors.response.use(
	function (response) {
		 // 进度条结束
		 nProgress.done()
		// 2xx 范围内的状态码都会触发该函数。
		// 对响应数据做点什么
		// const { data, code } = response.data
		// if (code === 200) {
		return response.data
		// } else {
		// 	if (data.message) {
		// 		return ElMessage({ type: 'error', message: data.message })
		// 	} else {
		// 		return ElMessage({ type: 'error', message: '请求出错' })
		// 	}
		// }
	},
	function (error) {
		 // 进度条结束
		 nProgress.done()
		// 超出 2xx 范围的状态码都会触发该函数。
		// 对响应错误做点什么
		let message = ''
		let status = error.code
		switch (status) {
			case "ECONNABORTED":
				message = '数据请求超时！'
		}
		ElMessage({
			type: 'error',
			message
		})
		return Promise.reject(error)
	}
)

export default httpRequest
